<?php

class ZFKiller_Filesystem {

	/**
	 * Cria uma pasta
	 * 
	 * @param string $pathname
	 * @param boolean $checkExists
	 * @param int $mode
	 * @param boolean $recursive
	 * @param resource $context
	 * @return boolean Ao final, se o diretório estar criado retorna true.
	 */
	public function mkdir($pathname, $checkExists = true, $mode = 0777, $recursive = false, $context = null) {
		if($checkExists) {
			if(is_dir($pathname)) {
				return true;
			}
		}
		if(null == $context) {
			return mkdir($pathname, $mode, $recursive);
		}
		return mkdir($pathname, $mode, $recursive, $context);
	}

	/**
	 * Apaga um diretorio, mesmo que exista arquivos dentro
	 *
	 * @param string $dir Diretorio
	 * @author <bcairns@gmail.com> in http://php.net/manual/en/function.rmdir.php
	 * @author Chiquitto<chiquitto@chiquitto.com.br>
	 */
	public static function rmdirRecursive($dir) {
		$dir = trim($dir, '/') . '/';
		$files = glob($dir . '*', GLOB_MARK);
		foreach ($files as $file) {
			if (substr($file, -1) == '/') {
				ZFKiller_Filesystem::rmdirRecursive($file);
			}
			else {
				unlink($file);
			}
		}
		rmdir($dir);
	}

}